﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Infrastructure.Model.Mail;
using Minio.DataModel;
using Upload = Infrastructure.Model.Mail.Upload;

namespace Infrastructure.Model
{
    /// <summary>
    /// 配置设置类，用于存储应用程序的各种配置信息。
    /// </summary>
    public class OptionsSetting
    {
        /// <summary>
        /// 管理员连接字符串的键名。
        /// </summary>
        public static string ConnAdmin = "conn_zrAdmin";

        /// <summary>
        /// 管理员数据库类型的键名。
        /// </summary>
        public static string ConnDbType = "conn_zrAdmin_type";

        /// <summary>
        /// 商务连接字符串的键名。
        /// </summary>
        public static string ConnBus = "conn_bus";

        /// <summary>
        /// 商务数据库类型的键名。
        /// </summary>
        public static string ConnBusDbType = "conn_bus_type";

        /// <summary>
        /// 数据库键的键名。
        /// </summary>
        public static string DbKey = "DbKey";

        /// <summary>
        /// Redis 配置信息字符串。
        /// </summary>
        public string Redis { get; set; }

        /// <summary>
        /// 数据库连接字符串。
        /// </summary>
        public string Database { get; set; }

        /// <summary>
        /// 是否为演示模式的标识。演示模式下可能会有不同的配置或行为。
        /// </summary>
        public bool?     DemoMode { get; set; }

        /// <summary>
        /// 邮件相关的配置选项。
        /// </summary>
        public MailOptions? MailOptions { get; set; }

        /// <summary>
        /// 文件上传的配置选项。
        /// </summary>
        public Upload? Upload { get; set; }

        /// <summary>
        /// 阿里云 OCS（Object Cache Service）配置选项。
        /// </summary>?
        public ALYUN_OCS? ALYUN_OCS { get; set; }
    }
}
